Non-volatile data storage devices, such as embedded flash memory, have allowed for increased portability of data and software applications. Information that is read from a non-volatile data storage device is often processed by an error correction code (ECC) decoder to correct errors that may be introduced into stored data during operation of the non-volatile data storage device. One example of such an ECC decoder is a low-density parity check (LDPC) decoder.
An LDPC decoder may use soft bits (e.g., reliability information) to decode hard bits (e.g., information indicating voltages read from a memory). Utilization of reliability information (soft bits) may significantly improve the decoder's correction capability. A soft bit can indicate a reliability of a corresponding hard bit. For example, a value of a soft bit may indicate a low reliability value if a corresponding voltage read from a storage element is close to a transition region between two adjacent states. If many of the errors in stored values are concentrated in state overlap regions (e.g., regions between two adjacent states), soft bits can provide significant improvements in error correction capability.
However, the achievable correction capability of the decoder also depends on the “quality” of the reliability information. For example, if errors are not concentrated in state overlap regions, the reliability information provided by soft bits may not be accurate. Inaccurate soft bits can be generated when single-level cell (SLC) data having errors is “folded” in tri-level cells (TLCs) using a “blind” On-Chip-Copy (OCC) operation. As used herein, storage elements of a memory may be referred to as cells or memory cells. Inaccurate soft bits may also be generated when a TLC has a long error tail, such as a long Er-to-A tail (e.g., a stretching of a threshold voltage distribution of erased cells into the “A” programming state) caused by a program disturb. In these cases, a hard bit may be in error even though the corresponding soft bit indicates a high reliability value. Inaccuracies in soft bits may therefore reduce performance of an ECC decoder.